import java.util.Arrays;

/**
 * 179.最大数
 */
public class Exerciser3 {
    public String largestNumber(int[] nums) {
        // 排序规则：
        // a + b > b + a -> a,b
        // a + b = b + a -> 无所谓
        // a + b < b + a -> b,a

        // 将数字转换为字符串
        int n = nums.length;
        String[] strs = new String[n];
        for(int i = 0;i < n;i++) {
            strs[i] = "" + nums[i];
        }

        // 按照排序规则进行排序
        Arrays.sort(strs,(a, b) -> {
            return (b + a).compareTo((a + b));
        });

        // 进行提取
        StringBuffer ret = new StringBuffer();
        for(String str : strs) {
            ret.append(str);
        }
        if(ret.charAt(0) == '0') {
            return "0";
        }
        return ret.toString();
    }
}
